package com.lzdongrui.backend.mapper;

import java.util.List;
import com.lzdongrui.backend.domain.Instructor;
import com.lzdongrui.backend.domain.dto.InstructorDTO;
import com.lzdongrui.backend.domain.vo.InstructorVO;

/**
 * 辅导员Mapper接口
 * 
 * @author wyh
 * @date 2023-05-19
 */
public interface InstructorMapper 
{
    /**
     * 查询辅导员
     * 
     * @param id 辅导员主键
     * @return 辅导员
     */
    public Instructor selectInstructorById(Long id);

    /**
     * 查询辅导员列表
     * 
     * @param instructorDTO 辅导员
     * @return 辅导员集合
     */
    public List<InstructorVO> selectInstructorList(InstructorDTO instructorDTO);

    /**
     * 新增辅导员
     * 
     * @param instructor 辅导员
     * @return 结果
     */
    public int insertInstructor(Instructor instructor);

    /**
     * 修改辅导员
     * 
     * @param instructor 辅导员
     * @return 结果
     */
    public int updateInstructor(Instructor instructor);

    /**
     * 删除辅导员
     * 
     * @param id 辅导员主键
     * @return 结果
     */
    public int deleteInstructorById(Long id);

    /**
     * 批量删除辅导员
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteInstructorByIds(Long[] ids);

    /**
     * 获取该用户是否是辅导员（假期审核表用）
     *
     * @param instructor
     * @return
     */
    List<Instructor> selectInstructorListInApplyLeave(Instructor instructor);

    /**
     * 批量修改辅导员
     *
     * @param instructor1
     * @return
     */
    int moreEdit(Instructor instructor1);

    /**
     * 批量设置辅导员
     *
     * @param instructor1
     * @return
     */
    int moreAdd(Instructor instructor1);

    long selectInstructorIdByGradeId(Long gradeId);
}
